/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gps.record;

/**
 *
 * @author john
 */
public abstract class Record {

    String id;
    String idgps;
    RecordPosicion posicion;
    RecordEstado estado;
    RecordAlarma alarma;
    int type;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public RecordPosicion getPosicion() {
        return posicion;
    }

    public void setPosicion(RecordPosicion posicion) {
        this.posicion = posicion;
    }

    public RecordEstado getEstado() {
        return estado;
    }

    public void setEstado(RecordEstado estado) {
        this.estado = estado;
    }

    public RecordAlarma getAlarma() {
        return alarma;
    }

    public void setAlarma(RecordAlarma alarma) {
        this.alarma = alarma;
    }

    public String getIdgps() {
        return idgps;
    }

    public void setIdgps(String idgps) {
        this.idgps = idgps;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public abstract String getQuery();

//    public String getQuery2() {
//        String sql = "";
//        //Record
//        try {
////            if (type != 0 && type != 1 && type != 6) {
//            sql = "select * from tkgpsveh.QUERY(p_id_posdis::bigint, p_co_server::smallint, p_co_disgps, p_fe_capgps::timestamp with time zone, p_nu_geolat, p_nu_geolon, p_nu_geoalt::smallint, p_nu_geodir::smallint, p_nu_geovel::smallint, p_nu_geokmt, p_va_sengps::character, p_va_sengsm::character, p_il_batdis, p_pr_batdis::smallint, p_il_blodis);";
//
//            sql = sql.replace("QUERY", getId().length() == 15 ? "plposdis_co_imedis" : "plposdis_co_disgps");
//            //--------------------------------------------------------------------------
//            sql = sql.replace("p_id_posdis", getIdgps());
////            sql = sql.replace("p_co_server", GPSStartupListener.co_server);//-------------
//            //--------------------------------------------------------------------------
//            sql = sql.replace("p_fe_capgps", posicion.getFecha() != null ? "'" + posicion.getFecha() + "'" : "null");
//            sql = sql.replace("p_co_disgps", getId().length() == 15 ? "\'" + getId() + "\'" : getId());
//            sql = sql.replace("p_nu_geolat", "" + posicion.getLatitud());
//            sql = sql.replace("p_nu_geolon", "" + posicion.getLongitud());
//            sql = sql.replace("p_nu_geoalt", "" + posicion.getAltitud());
//            sql = sql.replace("p_nu_geodir", "" + posicion.getDireccion());
//            sql = sql.replace("p_nu_geovel", "" + posicion.getVelocidad());
//            sql = sql.replace("p_nu_geokmt", estado.getKilometraje() != null ? "" + estado.getKilometraje() : "0");
//            sql = sql.replace("p_va_sengps", estado.getSenal_gps() != null ? "'" + estado.getSenal_gps() + "'" : "'F'");
//            sql = sql.replace("p_va_sengsm", estado.getSenal_gsm() != null ? "'" + estado.getSenal_gsm() + "'" : "'F'");
//            sql = sql.replace("p_il_batdis", estado.getBatdis() != null ? "" + estado.getBatdis() : "false");
//            sql = sql.replace("p_pr_batdis", estado.getCarga_bateria() != null ? "" + estado.getCarga_bateria() : "'0'");
//            sql = sql.replace("p_il_blodis", estado.getBloqueado() != null ? "" + estado.getBloqueado() : "false");
//
////            } else if (type == (5 | 6 | 7 | 8)) {
////                sql = "select * from gpsveh.plevedis_co_imedis(p_co_imedis, p_fe_evegps::timestamp with time zone, p_co_evedis::smallint)";
////                sql = sql.replace("p_co_imedis", getId() != null ? "'" + getId() + "'" : null)
////                        .replace("p_fe_evegps", posicion.getFecha() != null ? "'" + posicion.getFecha() + "'" : "null")
////                        .replace("p_co_evedis", alarma.getAlarma() + "");
////            }
//        } catch (Exception ep) {
//            System.out.println("Error construyendo query:" + ep.getMessage() + "\n::sql:" + sql);
////            ep.printStackTrace();
//        }
//        return sql;
//    }
    @Override
    public String toString() {
        return "Record{" + "id=" + id + ", posicion=" + posicion + ", estado=" + estado + ", alarma=" + alarma + '}';
    }

}
